home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
PET
/
S-Super PET
/
(s)tj.d64
/
GRAPH.LETTER.ASM
< prev
next >
Wrap
Assembly Source File
|
2009-01-18
|
11KB
|
241 lines
opt nolist; graph.letter.asm Oct 6, 1983. Avygdor Moise
null equ $00
vertical_bar equ $01
horizontal_bar equ $02
right_bottom equ $03
left_bottom equ $04
left_top equ $05
right_top equ $06
cross_bar equ $0b
blank equ $20
xdef graph_letter
graph_letter equ * ; p1 = address of top left corner
; p2 = letter to display (8 bits)
pshs y,x,d
tfr d,x ;x <-- starting address
jsr top_line ;[--------]
leax 70,x
ldy #character_table
ldb 9,s ;position index in ascii table
if lt
lda #$80 ;hi bit set ---> reverse the field
else
clra ;hi bit clear -> normal field
endif
pshs a ;on the stack field descriptor
andb #$7f ;disable high bit (7th)
lda #8 ;8 raster lines per letter (8x8)
mul ;calculate offset
leay d,y ;y points to first byte of the eight
lda #8 ;number of raster lines
pshs a ;outter loop counter
loop
lda #vertical_bar
sta ,x+ ;|.............
lda #8 ;inner loop counter
ldb ,y+ ;get a raster line image
loop
aslb
pshs b
if cs
ldb #$a0 ;reverse field space
else
ldb #$20 ;space
endif
eorb 2,s ;select the proper field
stb ,x+
puls b
deca
until eq
lda #vertical_bar
sta ,x+ ;|........|
leax 70,x
dec ,s ;loop counter
until eq
leas 2,s ;remove field descriptor
;and loop counter
bsr bottom_line ;[--------->
puls d,x,y
rts
;-------------------------------------------------------------------------------
line equ *
lda #8
ldb #horizontal_bar
loop
stb ,x+
deca
until eq
rts
;-------------------------------------------------------------------------------
top_line equ *
pshs d
ldb #left_top
stb ,x+
bsr line
ldb #right_top
stb ,x+
puls d
rts
;-------------------------------------------------------------------------------
bottom_line equ *
pshs d
ldb #left_bottom
stb ,x+
bsr line
ldb #right_bottom
stb ,x+
puls d
rts
;-------------------------------------------------------------------------------
character_table equ *
_NULL_ FCB 196 , 164 , 148 , 173 , 33 , 33 , 33 , 63
_SOH_ FCB 112 , 128 , 96 , 16 , 233 , 15 , 9 , 9
_STX_ FCB 112 , 128 , 96 , 16 , 224 , 9 , 6 , 9
_ETX_ FCB 224 , 128 , 192 , 128 , 224 , 9 , 6 , 9
_EOT_ FCB 224 , 128 , 192 , 128 , 224 , 31 , 4 , 4
_ENQ_ FCB 224 , 128 , 192 , 128 , 238 , 17 , 18 , 13
_ACK_ FCB 240 , 144 , 240 , 145 , 34 , 60 , 34 , 33
_BELL_ FCB 60 , 66 , 66 , 66 , 129 , 129 , 126 , 24
_BS_ FCB 224 , 144 , 224 , 151 , 104 , 6 , 1 , 14
_HT_ FCB 144 , 240 , 144 , 144 , 31 , 4 , 4 , 4
_LF_ FCB 128 , 128 , 128 , 240 , 15 , 8 , 14 , 8
_VT_ FCB 136 , 136 , 80 , 32 , 31 , 4 , 4 , 4
_FF_ FCB 240 , 128 , 192 , 128 , 15 , 8 , 12 , 8
_CR_ FCB 96 , 128 , 128 , 111 , 17 , 30 , 18 , 17
_SO_ FCB 96 , 128 , 96 , 32 , 206 , 17 , 17 , 14
_SI_ FCB 96 , 128 , 96 , 32 , 199 , 2 , 2 , 7
_DL_ FCB 224 , 144 , 144 , 224 , 8 , 8 , 8 , 15
_D1_ FCB 224 , 144 , 144 , 230 , 2 , 2 , 2 , 7
_DC2_ FCB 224 , 144 , 144 , 238 , 1 , 6 , 8 , 15
_DC3_ FCB 224 , 144 , 144 , 239 , 1 , 3 , 1 , 15
_DC4_ FCB 224 , 144 , 144 , 226 , 10 , 15 , 2 , 2
_NAK_ FCB 144 , 208 , 176 , 145 , 10 , 12 , 10 , 9
_SYN_ FCB 96 , 128 , 96 , 32 , 209 , 10 , 4 , 4
_ETB_ FCB 224 , 128 , 192 , 142 , 233 , 14 , 9 , 14
_CAN_ FCB 240 , 128 , 128 , 240 , 9 , 13 , 11 , 9
_EM_ FCB 224 , 128 , 192 , 128 , 241 , 27 , 21 , 17
_SUB_ FCB 112 , 128 , 96 , 30 , 241 , 30 , 17 , 30
_ESC_ FCB 224 , 128 , 192 , 134 , 232 , 6 , 1 , 6
_FS_ FCB 240 , 128 , 224 , 134 , 136 , 6 , 1 , 6
_GS_ FCB 112 , 128 , 176 , 150 , 104 , 6 , 1 , 6
_RS_ FCB 224 , 144 , 224 , 150 , 152 , 6 , 1 , 6
_US_ FCB 144 , 144 , 144 , 246 , 8 , 6 , 1 , 6
_SPACE_ FCB 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0
EXMARK FCB 24 , 24 , 24 , 24 , 24 , 24 , 0 , 24
DQUOTE FCB 102 , 102 , 102 , 0 , 0 , 0 , 0 , 0
NUMBER FCB 102 , 102 , 255 , 102 , 102 , 255 , 102 , 102
DOLLAR FCB 24 , 126 , 128 , 126 , 1 , 126 , 24 , 0
PERCENT FCB 1 , 98 , 4 , 8 , 16 , 32 , 70 , 128
_AND_ FCB 60 , 66 , 36 , 24 , 40 , 69 , 130 , 253
SQUOTE FCB 24 , 24 , 24 , 0 , 0 , 0 , 0 , 0
RLBRAK FCB 24 , 48 , 96 , 192 , 192 , 96 , 48 , 24
RRBRAK FCB 24 , 12 , 6 , 3 , 3 , 6 , 12 , 24
STAR FCB 153 , 90 , 60 , 255 , 60 , 90 , 153 , 0
PLUS FCB 0 , 0 , 24 , 255 , 24 , 0 , 0 , 0
COMMA FCB 0 , 0 , 0 , 0 , 8 , 8 , 16 , 32
MINUS FCB 0 , 0 , 0 , 0 , 255 , 0 , 0 , 0
DOT FCB 0 , 0 , 0 , 0 , 0 , 60 , 60 , 60
SLASH FCB 1 , 2 , 4 , 8 , 16 , 32 , 64 , 128
_0_ FCB 60 , 66 , 66 , 66 , 66 , 66 , 66 , 60
_1_ FCB 56 , 24 , 24 , 24 , 24 , 24 , 24 , 60
_2_ FCB 126 , 129 , 1 , 2 , 60 , 64 , 128 , 255
_3_ FCB 126 , 129 , 2 , 12 , 2 , 1 , 129 , 126
_4_ FCB 14 , 18 , 34 , 66 , 130 , 255 , 2 , 2
_5_ FCB 255 , 128 , 128 , 126 , 1 , 1 , 129 , 126
_6_ FCB 30 , 32 , 64 , 128 , 254 , 129 , 129 , 126
_7_ FCB 255 , 3 , 6 , 12 , 24 , 48 , 48 , 48
_8_ FCB 126 , 129 , 129 , 126 , 129 , 129 , 129 , 126
_9_ FCB 126 , 129 , 129 , 127 , 1 , 2 , 4 , 120
COLON FCB 0 , 24 , 0 , 0 , 0 , 0 , 24 , 0
SEMI FCB 0 , 24 , 0 , 0 , 0 , 24 , 24 , 48
LESS FCB 0 , 3 , 12 , 48 , 192 , 48 , 12 , 3
EQUAL FCB 0 , 0 , 255 , 0 , 255 , 0 , 0 , 0
GREAT FCB 0 , 192 , 48 , 12 , 3 , 12 , 48 , 192
QUEST FCB 126 , 129 , 2 , 4 , 8 , 16 , 0 , 16
AT FCB 126 , 129 , 157 , 163 , 163 , 156 , 129 , 126
_A_ FCB 255 , 129 , 129 , 255 , 129 , 129 , 129 , 129
_B_ FCB 254 , 129 , 130 , 252 , 130 , 129 , 129 , 254
_C_ FCB 127 , 128 , 128 , 128 , 128 , 128 , 128 , 127
_D_ FCB 254 , 129 , 129 , 129 , 129 , 129 , 129 , 254
_E_ FCB 255 , 128 , 128 , 248 , 128 , 128 , 128 , 255
_F_ FCB 255 , 128 , 128 , 248 , 128 , 128 , 128 , 128
_G_ FCB 126 , 129 , 128 , 128 , 143 , 129 , 129 , 126
_H_ FCB 129 , 129 , 129 , 255 , 129 , 129 , 129 , 129
_I_ FCB 60 , 24 , 24 , 24 , 24 , 24 , 24 , 60
_J_ FCB 28 , 4 , 4 , 4 , 4 , 4 , 68 , 56
_K_ FCB 130 , 132 , 136 , 240 , 136 , 132 , 130 , 129
_L_ FCB 128 , 128 , 128 , 128 , 128 , 128 , 128 , 255
_M_ FCB 129 , 195 , 165 , 153 , 129 , 129 , 129 , 129
_N_ FCB 129 , 193 , 161 , 145 , 137 , 133 , 131 , 129
_O_ FCB 126 , 129 , 129 , 129 , 129 , 129 , 129 , 126
_P_ FCB 126 , 129 , 129 , 129 , 254 , 128 , 128 , 128
_Q_ FCB 126 , 129 , 129 , 129 , 137 , 133 , 122 , 1
_R_ FCB 126 , 129 , 129 , 129 , 254 , 132 , 130 , 129
_S_ FCB 126 , 129 , 128 , 126 , 1 , 1 , 129 , 126
_T_ FCB 255 , 24 , 24 , 24 , 24 , 24 , 24 , 24
_U_ FCB 129 , 129 , 129 , 129 , 129 , 129 , 129 , 126
_V_ FCB 129 , 129 , 129 , 129 , 129 , 66 , 36 , 24
_W_ FCB 129 , 129 , 129 , 129 , 129 , 153 , 165 , 195
_X_ FCB 129 , 66 , 36 , 24 , 24 , 36 , 66 , 129
_Y_ FCB 129 , 129 , 66 , 36 , 24 , 24 , 24 , 24
_Z_ FCB 255 , 1 , 1 , 6 , 24 , 96 , 128 , 255
LSBRAK FCB 60 , 32 , 32 , 32 , 32 , 32 , 32 , 60
BSLASH FCB 128 , 64 , 32 , 16 , 8 , 4 , 2 , 1
RSBRAK FCB 60 , 4 , 4 , 4 , 4 , 4 , 4 , 60
ARROW FCB 24 , 60 , 90 , 153 , 24 , 24 , 24 , 24
UNDER FCB 0 , 0 , 0 , 0 , 0 , 0 , 0 , 255
BQUOTE FCB 32 , 16 , 8 , 4 , 0 , 0 , 0 , 0
_AA_ FCB 0 , 0 , 124 , 2 , 126 , 130 , 130 , 127
_BB_ FCB 128 , 128 , 128 , 254 , 129 , 129 , 129 , 126
_CC_ FCB 0 , 0 , 0 , 127 , 128 , 128 , 128 , 127
_DD_ FCB 1 , 1 , 1 , 127 , 129 , 129 , 129 , 127
_EE_ FCB 0 , 0 , 0 , 126 , 129 , 254 , 128 , 126
FF_ FCB 14 , 16 , 16 , 62 , 16 , 16 , 16 , 16
_GG_ FCB 126 , 129 , 129 , 129 , 127 , 1 , 1 , 126
_HH_ FCB 128 , 128 , 128 , 254 , 129 , 129 , 129 , 129
_II_ FCB 24 , 0 , 0 , 24 , 24 , 24 , 24 , 60
_JJ_ FCB 12 , 0 , 12 , 4 , 4 , 4 , 68 , 56
_KK_ FCB 192 , 192 , 192 , 195 , 204 , 240 , 204 , 195
_LL_ FCB 56 , 24 , 24 , 24 , 24 , 24 , 24 , 60
_MM_ FCB 0 , 0 , 0 , 238 , 145 , 145 , 145 , 145
_NN_ FCB 0 , 0 , 0 , 190 , 193 , 129 , 129 , 129
_OO_ FCB 0 , 0 , 0 , 126 , 129 , 129 , 129 , 126
_PP_ FCB 0 , 0 , 126 , 129 , 129 , 254 , 128 , 128
_QQ_ FCB 0 , 0 , 127 , 129 , 129 , 127 , 1 , 1
_RR_ FCB 0 , 0 , 0 , 159 , 160 , 192 , 128 , 128
_SS_ FCB 0 , 0 , 0 , 126 , 128 , 126 , 1 , 126
_TT_ FCB 32 , 32 , 32 , 124 , 32 , 32 , 36 , 24
_UU_ FCB 0 , 0 , 0 , 129 , 129 , 129 , 129 , 127
_VV_ FCB 0 , 0 , 0 , 129 , 129 , 66 , 36 , 24
_WW_ FCB 0 , 0 , 0 , 129 , 129 , 153 , 153 , 102
_XX_ FCB 0 , 0 , 0 , 129 , 66 , 60 , 66 , 129
_YY_ FCB 0 , 0 , 0 , 129 , 130 , 124 , 16 , 224
_ZZ_ FCB 0 , 0 , 0 , 255 , 6 , 24 , 96 , 255
CLPAREN FCB 14 , 16 , 16 , 96 , 96 , 16 , 16 , 14
VBAR FCB 24 , 24 , 24 , 24 , 24 , 24 , 24 , 24
CRPAREN FCB 112 , 8 , 8 , 6 , 6 , 8 , 8 , 112
TILDA FCB 0 , 0 , 0 , 96 , 145 , 14 , 0 , 0
DELETE FCB 170 , 85 , 170 , 85 , 170 , 85 , 170 , 85
end